System ক্লাস Java-এর java.lang প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস যা মূলত Java Runtime Environment (JRE) এর সাথে সম্পর্কিত। এটি system-level কার্যাবলী এবং standard I/O অপারেশন পরিচালনার জন্য ব্যবহৃত হয়। System ক্লাসের মেথডগুলি মূলত স্ট্যাটিক (static) এবং এটি মূলত ইনপুট এবং আউটপুট স্ট্রিম, সিস্টেম প্রপার্টি, টাইম জোন, সিস্টেমের শাটডাউন এবং অন্যান্য অনেক কার্যাবলী পরিচালনা করে।
System ক্লাসের কোনও কনস্ট্রাক্টর নেই, এটি একটি utility class হিসেবে কাজ করে এবং static methods এবং static fields প্রদান করে।
System ক্লাসের ভূমিকা:
- Standard Input and Output Streams:
Systemক্লাস standard input (কী-বোর্ড) এবং standard output (স্ক্রীন) পরিচালনা করতে সহায়তা করে।- এটি
System.in,System.out, এবংSystem.errএর মতো স্ট্রিম ব্যবহারের সুযোগ দেয়, যা যথাক্রমে ইনপুট (যেমন,Scanner), আউটপুট এবং এরর স্ট্রিম হিসেবে ব্যবহৃত হয়।
- System Properties:
Systemক্লাস system properties এর সাথে কাজ করার জন্য ব্যবহার করা হয়, যেমন operating system name, Java version, user home directory ইত্যাদি।- এটি
System.getProperty()এবংSystem.setProperty()মেথড ব্যবহার করে সিস্টেম প্রপার্টি অ্যাক্সেস এবং সেট করা যায়।
- Environment Variables:
System.getenv()এর মাধ্যমে সিস্টেমের পরিবেশ ভেরিয়েবলগুলো (environment variables) পাওয়া যায়।
- Time and Timing:
Systemক্লাসটি সিস্টেমের সময়, টাইমস্ট্যাম্প, এবং টাইম মেজারমেন্টের জন্যও ব্যবহৃত হয়।System.currentTimeMillis()এবংSystem.nanoTime()মেথডের মাধ্যমে সময় মাপা যায়।
- Shutdown Hooks:
Systemক্লাসের মাধ্যমে শাটডাউন হুকও পরিচালনা করা যায়, যা একটি থ্রেড চালু করে যখন JVM বন্ধ হয়। এটি clean-up operations বা resource release করার জন্য ব্যবহৃত হয়।
- Array Copying:
Systemক্লাসে array copy করার জন্যSystem.arraycopy()মেথড রয়েছে, যা দ্রুত এবং দক্ষভাবে এক অ্যারে থেকে অন্য অ্যারেতে ডেটা কপি করতে ব্যবহৃত হয়।
System ক্লাসের মূল মেথডগুলো এবং তাদের ব্যবহার
1. System.out
System.outহল একটি PrintStream অবজেক্ট যা আউটপুট স্ট্রিমের জন্য ব্যবহৃত হয়, যেমনSystem.out.println()বাSystem.out.print()।উদাহরণ:
System.out.println("Hello, World!"); // Output: Hello, World!
2. System.in
System.inহল একটি InputStream যা ব্যবহারকারীর ইনপুট নেওয়ার জন্য ব্যবহৃত হয় (যেমনScannerক্লাসের মাধ্যমে)।উদাহরণ:
Scanner scanner = new Scanner(System.in); System.out.println("Enter your name:"); String name = scanner.nextLine(); System.out.println("Hello, " + name);
3. System.err
System.errহল একটি PrintStream যা এরর বা ত্রুটি বার্তা আউটপুট করতে ব্যবহৃত হয়।উদাহরণ:
System.err.println("Error: Something went wrong!");
4. System.currentTimeMillis()
এটি সিস্টেমের বর্তমান সময় (মিলিসেকেন্ডে) প্রদান করে। এটি সাধারণত performance measuring এর জন্য ব্যবহৃত হয়।
উদাহরণ:
long startTime = System.currentTimeMillis(); // Some operation long endTime = System.currentTimeMillis(); System.out.println("Execution time: " + (endTime - startTime) + " milliseconds");
5. System.nanoTime()
এটি একটি আরও সুনির্দিষ্ট টাইম মাপার মেথড, যা nanoseconds-এ সময় প্রদান করে। এটি সাধারণত performance testing বা benchmarking এর জন্য ব্যবহৃত হয়।
উদাহরণ:
long startNanoTime = System.nanoTime(); // Some operation long endNanoTime = System.nanoTime(); System.out.println("Execution time: " + (endNanoTime - startNanoTime) + " nanoseconds");
6. System.exit(int status)
এটি Java প্রোগ্রামটি বন্ধ করার জন্য ব্যবহৃত হয়। এটি সাধারণত status code সহ ব্যবহৃত হয় যেখানে 0 সফল সমাপ্তি নির্দেশ করে এবং অন্য যে কোনও মান ত্রুটির সংকেত দেয়।
উদাহরণ:
System.exit(0); // Exits the program with status code 0 (success)
7. System.setProperty(String key, String value)
এটি সিস্টেম প্রপার্টি সেট করতে ব্যবহৃত হয়। প্রপার্টি প্যারামিটার
keyএবংvalueদ্বারা সেট করা হয়।উদাহরণ:
System.setProperty("user.name", "JohnDoe"); System.out.println("User Name: " + System.getProperty("user.name"));
8. System.getProperty(String key)
এটি সিস্টেম প্রপার্টি পাওয়া জন্য ব্যবহৃত হয়, যেখানে
keyহল প্রপার্টির নাম।উদাহরণ:
String javaVersion = System.getProperty("java.version"); System.out.println("Java Version: " + javaVersion);
9. System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
এটি একটি অ্যারে থেকে অন্য একটি অ্যারেতে ডেটা কপি করার জন্য ব্যবহৃত হয়। এটি দ্রুত এবং দক্ষ।
উদাহরণ:
int[] source = {1, 2, 3, 4, 5}; int[] destination = new int[5]; System.arraycopy(source, 0, destination, 0, source.length); System.out.println(Arrays.toString(destination)); // Output: [1, 2, 3, 4, 5]
10. System.nanoTime()
- সিস্টেমের আরও নির্ভুল সময়ের জন্য ব্যবহৃত হয়। এটি প্রোগ্রাম চলাকালীন সময় পরিমাপ করতে ব্যবহৃত হয়, বিশেষ করে benchmarking এর জন্য।
System ক্লাসের অন্যান্য গুরুত্বপূর্ণ ব্যবহার:
Environment Variables:
System.getenv()এর মাধ্যমে আপনি পরিবেশ ভেরিয়েবলগুলি অ্যাক্সেস করতে পারেন।উদাহরণ:
String path = System.getenv("PATH"); System.out.println("System PATH: " + path);- Shutting Down the JVM:
System.exit()মেথড ব্যবহার করে আপনি JVM কে শাটডাউন করতে পারেন, যাতে প্রোগ্রামটি বন্ধ হয়। - Redirecting Output Streams: আপনি আউটপুট স্ট্রিমগুলিকে redirect করতে পারেন, যেমন ফাইল বা অন্য কোনও ডিভাইসের দিকে আউটপুট পাঠানো।
System ক্লাস Java.lang প্যাকেজের একটি অত্যন্ত গুরুত্বপূর্ণ ক্লাস, যা সিস্টেম-সম্পর্কিত কার্যাবলী পরিচালনা করতে ব্যবহৃত হয়। এটি আউটপুট স্ট্রিম, ইনপুট স্ট্রিম, সিস্টেম প্রপার্টি, টাইম মাপা, শাটডাউন হুক ইত্যাদি সিস্টেম সম্পর্কিত বিভিন্ন কার্যাবলী সরবরাহ করে। অধিকাংশ Java প্রোগ্রামেই এই ক্লাসটির কার্যাবলী ব্যবহার করা হয় এবং এটি প্রোগ্রামের ব্যবস্থাপনা ও অপারেশন সহজ করে তোলে।
Read more